﻿using System;
using System.Collections.Generic;
using System.Text;

namespace SanctusSoftware.Music.ChordSheetEditor.Client
{

  public interface IChordSheetEditorActionView
  {

    // Misc
    bool IsDevMode { get; set; }

    // Target
    event EventHandler TargetChanged;
    ActionTarget Target { get; set; }

    #region Transpose

    string[] ValidKeys { set; }
    string OriginalKey { get; set; }
    event EventHandler OriginalKeyChanged;
    string TransposeTo { get; set; }
    event EventHandler TransposeToChanged;
    event EventHandler RequestTranspose;
    event EventHandler RequestTransposeOptions;
    
    #endregion    

    #region Quick Transpose

    bool IsQuickTransposeDownLowEnabled { get; set; }
    string QuickTransposeDownLowKey { get; set; }
    event EventHandler RequestQuickTransposeDownLow;

    bool IsQuickTransposeDownHighEnabled { get; set; }
    string QuickTransposeDownHighKey { get; set; }
    event EventHandler RequestQuickTransposeDownHigh;

    bool IsQuickTransposeEnharmonicEnabled { get; set; }
    string QuickTransposeEnharmonicKey { get; set; }
    event EventHandler RequestQuickTransposeEnharmonic;

    bool IsQuickTransposeUpLowEnabled { get; set; }
    string QuickTransposeUpLowKey { get; set; }
    event EventHandler RequestQuickTransposeUpLow;

    bool IsQuickTransposeUpHighEnabled { get; set; }
    string QuickTransposeUpHighKey { get; set; }
    event EventHandler RequestQuickTransposeUpHigh; 
    #endregion

    #region Format Chords

    event EventHandler RequestFormatChords;
    event EventHandler RequestRemoveHyperlinksFromChordLines;
    

    #endregion

    // Request Remove Lyrics
    event EventHandler RequestRemoveChords;

  }

}
